
public class TestDemo {





//    一道作业题
    public static void main10(String[] args) {
        double x=2.0; int y=4; x/=++y;
        byte a=10;

//        a++;//a+=1;
//        a+=1;
//        a=a+1;//报错

        System.out.println(x);
        //输出0.4
    }

    public static void main9(String[] args) {
        boolean flg=(true==true)?(true==true)?false:true:true;
        System.out.println(flg);


        boolean flg2=(true==true)?(true==true)?false:true:false;
        System.out.println(flg2);

    }

    public static void main8(String[] args) {
        int a=-1;
//        无符号右移，没有无符号左移（没意义）
        System.out.println(a>>>1);
    }

    public static void main7(String[] args) {
        int a=-1;
        System.out.println(!(a==0));
        int b=2;
        //此时&符号，如果左右两边都是布尔类型，那也相当于逻辑运算
        System.out.println(a==1 & b==2);
        //此时和&&的区别是这里不能再进行短路求值了
        System.out.println(a==2&(1/0)==0);//会报错
    }

    public static void main6(String[] args) {
        int a=1;
        int b=2;
        //System.out.println(1/0);//单独运行会报错
        System.out.println(a==1||(1/0)==0);//短路逻辑或

        System.out.println(a==1&&b==2);
        System.out.println(a==2&&b==2);

        System.out.println(a==2&&(1/0)==0);//短路逻辑与
    }

    public static void main5(String[] args) {
        System.out.println(1<5);
        System.out.println(1<=5);
        System.out.println(1>5);
        System.out.println(1>=5);
        System.out.println(1!=5);
        System.out.println(1==5);
//        这种写法是错误的
//        System.out.println(3<a，100);
    }

    public static void main4(String[] args) {
        int a=10;
//        int b=a++;//a=11/b=10

        int b=++a;//a=11/b=11
        System.out.println(b);
        System.out.println(a);

//        这个特殊的记着就行
        int i=10;
        i=i++;//i最终是10
        System.out.println(i);
    }
    public static void main3(String[] args) {
        int a=10;
        a+=1;//a=a+1;
        System.out.println(a);

        short sh=12;
        //sh=sh+2--报错，如果赋值需要强转
        sh+=2;//不会报错--理解为帮我们进行了类型的转换
        System.out.println(sh);
    }
    //这些运算你真的会算吗？
    public static void main2(String[] args) {
        System.out.println(10%3);
        System.out.println(10%-3);
        System.out.println(-10%3);
        System.out.println(-10%-3);
        //    1 1 -1 -1

        //跟特殊的
        System.out.println(11.5%2);//1.5
    }


    public static void main1(String[] args) {
        System.out.println(5/2);
        System.out.println((float)5/2);
        System.out.println(5/(float)2);
        System.out.println((float) (5/2));
//        2
//        2.5
//        2.5
//        2.0
    }

    public static void main(String[] args) {
//        short sh=12;
//        //sh=sh+2;
//        //-->sh+2整形提升为int类型-->int类型赋值给short会报错，
//        //如果赋值需要强转-->sh=*(short)(sh+2);
//
//        sh++;
//        sh+=2;//不会报错--理解自动进行了类型的转换
//
//        System.out.println(sh);
//        System.out.println(11 % 0);
//        int i=10;
//        i=i++;//i最终是10
//        System.out.println(i);
//        System.out.println(10 > 20 && 10 / 0 == 0); // 打印 false
//        System.out.println(10 < 20 || 10 / 0 == 0); // 打印 true
//
//        System.out.println(10 > 20 & 10 / 0 == 0); // 程序抛出异常
//        System.out.println(10 < 20 | 10 / 0 == 0); // 程序抛出异常
//        System.out.println("-128右移1位后："+(-128>>1));
//        System.out.println("4左移1位后："+(4<<1));

    }


}

